home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / rexx / help.rexx < prev    next >
OS/2 REXX Batch file  |  1996-03-11  |  2KB  |  114 lines

  1. /*
  2.   Help.rexx
  3.  
  4.   This Rexx Macro searches for word under cursor in your autodocs.
  5.   To use it you have to follow these steps:
  6.  
  7.   1) convert autodocs in amigaguide format using AD2AG utility
  8.      (you can found it in developers' disks)
  9.  
  10.   2) Put amigaguide files in a directory and assign it "DOCS:"
  11.  
  12.   3) Create an amigaguide file named "NULL" in "DOCS:"
  13.  
  14.         @database "NULL"
  15.         @Node Main ""
  16.         @EndNode
  17.  
  18.   4) Add DOCS: in your AmigaGuide paths
  19.  
  20.         SetEnv AmigaGuide/PATH DOCS:
  21.  
  22. */
  23.  
  24. OPTIONS RESULTS
  25. address 'PED_AREXX'
  26.  
  27. IF ~SHOW('L','amigaguide.library') THEN
  28.    CALL ADDLIB('amigaguide.library',0,-30)
  29.  
  30. QUERY MEMCURSORCOL
  31. ncolonna=result+1
  32.  
  33. QUERY LINE
  34. riga=result
  35.  
  36. i=ncolonna+1
  37. DO WHILE i>0
  38.  
  39.     i=i-1
  40.     IF i=0 THEN BREAK
  41.  
  42.     c=SUBSTR(riga,i,1)
  43.  
  44.     ok=0
  45.     IF c>='a' THEN IF c<='z' THEN ok=1
  46.     IF c>='A' THEN IF c<='Z' THEN ok=1
  47.     IF c>='0' THEN IF c<='9' THEN ok=1
  48.     IF c='_' THEN ok=1
  49.     IF ok=0 THEN BREAK
  50. END
  51.  
  52. word=""
  53. DO j=i+1 to 1000
  54.  
  55.     c=SUBSTR(riga,j,1)
  56.  
  57.     ok=0
  58.     IF c>='a' THEN IF c<='z' THEN ok=1
  59.     IF c>='A' THEN IF c<='Z' THEN ok=1
  60.     IF c>='0' THEN IF c<='9' THEN ok=1
  61.     IF c='_' THEN ok=1
  62.     IF ok=0 THEN BREAK
  63.  
  64.     word=word||c
  65. END
  66.  
  67. /* See if the Autodoc cross-reference table is loaded */
  68. line = GetXRef("OpenWindow()")
  69. IF line = 10 THEN DO
  70.     /* The Autodoc table wasn't loaded, so load it. */
  71.     CALL LoadXRef("docs:autodocs.xref")
  72. END
  73.  
  74. /* See if the word is in the cross-reference table */
  75. function = word
  76. xref = 0
  77. line = GetXRef(function)
  78. IF line = 10 THEN DO
  79.   /* Add the parens to the name */
  80.   function = word||"()"
  81.  
  82.   /* Try again */
  83.   line = GetXRef(function)
  84.   IF line = 10 THEN DO
  85.      function = word
  86.      END
  87.   ELSE DO
  88.      xref = 1
  89.      END
  90.   END
  91. ELSE DO
  92.   xref = 1
  93.   END
  94.  
  95. linea=WORD(line,4)
  96.  
  97. /* See if we have an Autodoc viewing window open */
  98. IF ~SHOW('P','AUTODOCS') THEN DO
  99.   ADDRESS COMMAND "run <>nil: amigaguide docs:NULL portname AUTODOCS pubscreen PED_SCREEN"
  100.   ADDRESS COMMAND 'sys:rexxc/waitforport AUTODOCS'
  101.   ADDRESS COMMAND 'wait 1'
  102. END
  103.  
  104. /* See if we are trying to load a database or a document */
  105. IF xref = 0 THEN cmd = "LINK "||function||"/main"
  106. IF xref = 1 THEN cmd = "LINK "||function||" "||linea
  107.  
  108. /* Align the window */
  109. ADDRESS AUTODOCS cmd
  110.  
  111. /* I want it to come to the front, because I have limited space */
  112. ADDRESS AUTODOCS "windowtofront"
  113. EXIT
  114.